package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * OA系统应收账款汇总对象 oa_accounts_receivable_summary
 * 
 * @author ruoyi
 * @date 2025-03-14
 */
public class OaAccountsReceivableSummary extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键ID */
    private Long id;

    /** 甲方（开票）名称 */
    @Excel(name = "甲方", readConverterExp = "开=票")
    private String clientInvoiceName;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String projectNumber;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 开票金额 */
    @Excel(name = "开票金额")
    private BigDecimal invoicedAmount;

    /** 开票日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoiceDate;

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private String projectLeader;

    /** 备注 */
    @Excel(name = "备注")
    private String remarks;

    /** 是否开票 */
    @Excel(name = "是否开票")
    private Integer isInvoiced;

    /** 是否回款 */
    @Excel(name = "是否回款")
    private Integer isPaid;

    /** 立项id */
    @Excel(name = "立项id")
    private Long projectId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setClientInvoiceName(String clientInvoiceName) 
    {
        this.clientInvoiceName = clientInvoiceName;
    }

    public String getClientInvoiceName() 
    {
        return clientInvoiceName;
    }

    public void setProjectNumber(String projectNumber) 
    {
        this.projectNumber = projectNumber;
    }

    public String getProjectNumber() 
    {
        return projectNumber;
    }

    public void setProjectName(String projectName) 
    {
        this.projectName = projectName;
    }

    public String getProjectName() 
    {
        return projectName;
    }

    public void setInvoicedAmount(BigDecimal invoicedAmount) 
    {
        this.invoicedAmount = invoicedAmount;
    }

    public BigDecimal getInvoicedAmount() 
    {
        return invoicedAmount;
    }

    public void setInvoiceDate(Date invoiceDate) 
    {
        this.invoiceDate = invoiceDate;
    }

    public Date getInvoiceDate() 
    {
        return invoiceDate;
    }

    public void setProjectLeader(String projectLeader) 
    {
        this.projectLeader = projectLeader;
    }

    public String getProjectLeader() 
    {
        return projectLeader;
    }

    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }

    public void setIsInvoiced(Integer isInvoiced) 
    {
        this.isInvoiced = isInvoiced;
    }

    public Integer getIsInvoiced() 
    {
        return isInvoiced;
    }

    public void setIsPaid(Integer isPaid) 
    {
        this.isPaid = isPaid;
    }

    public Integer getIsPaid() 
    {
        return isPaid;
    }

    public void setProjectId(Long projectId) 
    {
        this.projectId = projectId;
    }

    public Long getProjectId() 
    {
        return projectId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("clientInvoiceName", getClientInvoiceName())
            .append("projectNumber", getProjectNumber())
            .append("projectName", getProjectName())
            .append("invoicedAmount", getInvoicedAmount())
            .append("invoiceDate", getInvoiceDate())
            .append("projectLeader", getProjectLeader())
            .append("remarks", getRemarks())
            .append("isInvoiced", getIsInvoiced())
            .append("isPaid", getIsPaid())
            .append("projectId", getProjectId())
            .toString();
    }
}
